perm filename DOC[XGP,BGB] blob
sn#023238 filedate 1973-02-03 generic text, type T, neo UTF8
00100 XAP & TVFONT MEMO. FEBRUARY 1973
00200
00300
00400 A TOY XEROX 2D GRAPHICS SYSTEM.
00500
00600 Bruce g. Baumgart
00700
00800 ABSTRACT:
00900
01000 This memo explains a toy system for creating xerox graphics
01100 output; these programs are intended only for amusement and
01200 demonstration; they are not intended to be system utility programs.
01300 Furthermore, the file formats explained in this memo are not to be
01400 taken seriously, because as first hacks at a new technology they are
01500 necessarily narrow gauged, the author feels that it is really too
01600 early to be discussing standards and rules of compatibility. The
01700 programs are coded in PDP-10 machine code via the FAIL assembler.
01800
01900
02000
02100 CONTENTS:
02200
02300 Toy Programs:
02400
02500 XAP - Xerox Assemble and Print.
02600 TVFONT - Television Font generator.
02700
02800 Toy File formats:
02900
03000 XAP's Random Graphics File Format.
03100 XAP's Font File Format.
03200 TVFONT's Font File Format.
00100 XAP - XEROX ASSEMBLE AND PRINT.
00200
00300 XAP allows the user to specify a font file mapping under which
00400 the text of a given XAP random-graphics
00500 file will be assembled and printed
00600 on the XGP.
00700
00100 TVFONT - TELEVISION FONT GENERATOR.
00200
00300 Ignoring all frills, TVFONT provides bidirectional
00400 conversion between two basic kinds of image representation; the bit
00500 array image and the polygon edge image:
00600
00700 OPERATION OPERAND RESULT
00800
00900 1. MAKE CONTOUR: BITS → POLYGONS.
01000 2. MAKE REGION: POLYGONS → BITS.
01100
01200 Minor image representations and conversions such as
01300 television video rasters and character font bit arrays are readily
01400 obtained from one or the other major image representation by
01500 thresholding or repacking. The main reason for bothering with the
01600 polygon image representation is that some kinds of drawing, scaling,
01700 and shaping are easier to do in the polygon representation.
01800
01900 In a typical sequence, TVFONT is used to generate a character
02000 set from a font book or from a designers hand drawings with a minimal
02100 amount of human assistance. Television pictures of the character
02200 forms is read from a camera or from a disk file and can converted by
02300 thresholding into a bit array. The edges in the bit array are then
02400 found to obtain a polygon representation of the black regions of the
02500 television picture. The letters are isolated and identified by the
02600 operator and some editing of the location, scale and shape of the
02700 polygons is allowed. Finally the polygons are converted back into a
02800 bit array representation and packed into a font file.
00100 XAP's Random Graphics Absolute File Format.
00200
00300 XAP's Random Graphics absolute file format is like a glorified III
00400 buffer which may contain not only text and vectors but also bit
00500 arrays and relative font specification. The word "random" is used to
00600 emphasive that the author is well aware that a utility file format of
00700 this kind must be scan line ordered for the sake of system
00800 efficiency. The word "Relative" is used to suggest
00900 that the
01000 exact Font selection has not yet been bound.
01100
01200
00100 XAP's Font File Format.
00200
00300 Let the words of the file be serial numbered in octal from 0
00400 to whatever. The first 128 words of the file then occupy words
00500 numbered 0 to 177 and contain pointers to glyphs. The lowest possible
00600 glyph pointer is 200. A glyph is a block of three or more words, the
00700 first three words of a glyph are a header and the remaining words are
00800 a bit array.
00900
01000 The right half of the first word of a glyph header specifies
01100 the number of words wide the bit array is. The left half of the first
01200 word specifies the number of rows in the bit array. The second and
01300 the third of the glyph header are relative row,,column vectors; the
01400 second word being a vector to where the upper left most bit of the
01500 glyph should be place relative to XAP's pseudo beam locus (or pseudo
01600 pen position, depending on which obsolete technology you prefer). The
01700 third word is a vector to the terminal point of the glyph. This
01800 allows lower case letter and punctuation marks to use fewer words
01900 than capital letters and fancy glyphs; it also allows for non-spacing
02000 characters and arbitrary "spacing" characters.
02100
00100 TVFONT's Font File Format.